package ace.module.security.api.model.dto;

import ace.cmp.core.constants.CoreConstant;

import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 账户身份基本资料
 *
 * @author Caspar
 * @since 2020-01-09
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AccountProfileDto implements Serializable {

  private Long id;

  /**
   * 应用id
   */
  private Long appId;

  /**
   * account id
   */
  private Long accountId;

  /**
   * 昵称
   */
  private String nickName;

  /**
   * 真实姓名
   */
  private String realName;

  /**
   * 头像
   */
  private String avatar;

  /**
   * 个性签名
   */
  private String signature;

  /**
   * 性别 {@link SexEnum}
   */
  private Integer sex;

  /**
   * 注册来源 {@link RegisterSourceFromEnum}
   */
  private Integer registerSourceFrom;

  /**
   * 生日
   */
  private Long birthday;

  /**
   * 删除标识
   * {@link CoreConstant#DELETE_FLAG_NOT}
   */
  private Long deleteFlag;

  /**
   * 更新时间
   */
  private Long updateTime;

  /**
   * 创建时间
   */
  private Long createTime;

  /**
   * 版本号和乐观锁字段,初始为0，更新自增1
   */
  private Long rowVersion;
}
